﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;

public partial class KhoaDuLieu : System.Web.UI.Page
{
    clsXuLy ex = new clsXuLy();
    SqlParameter[] p;
    string frmName = "frmKhoaMoDuLieu";
    static int f_SuDung = 0;
    public string Header = System.Configuration.ConfigurationSettings.AppSettings["Header"].ToString();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(Convert.ToString(Session["user"])))
            gstGetMess("Hết phiên làm việc, vui lòng đăng nhập để tiếp tục", "Default.aspx");
        else
        {
            if (!IsPostBack)
            {
                string idnguoidung = Session["IDUser"].ToString();
                string sql = "select SuDung from XDAPhanQuyen where IDnguoidung='" + idnguoidung + "' and tag='" + frmName + "'";

                DataTable dt2 = ex.GetData_Text(sql);
                if (dt2.Rows.Count > 0)
                {
                    f_SuDung = int.Parse(dt2.Rows[0]["SuDung"].ToString());
                }

                Title = "Khóa / Mở dữ liệu | " + Header;

                for (int i = 1; i <= 12; i++)
                {
                    dlThang.Items.Add(new ListItem("Tháng " + i.ToString(), i.ToString()));
                    dlThang2.Items.Add(new ListItem("Tháng " + i.ToString(), i.ToString()));
                }
                dlThang.SelectedIndex = 0;
                dlThang2.SelectedIndex = 0;

                int year1 = DateTime.Now.Year - 3;
                int year2 = DateTime.Now.Year;
                for (int i = year2; i >= year1; i--)
                {
                    dlNam.Items.Add(new ListItem("Năm " + i.ToString(), i.ToString()));
                    dlNam2.Items.Add(new ListItem("Năm " + i.ToString(), i.ToString()));
                }
                dlNam.SelectedValue = year2.ToString();
                dlNam2.SelectedValue = year2.ToString();

                var KHoa = ex.GetData_Text("select * from xdakhoadanhmuc where active=1");
                dlKhoa.DataSource = KHoa;
                dlKhoa.DataBind();

                dlMoKhoa.DataSource = KHoa;
                dlMoKhoa.DataBind();
                dlMoKhoa.Items.Insert(0, new ListItem("Chọn mục mở khóa", ""));
                dlMoKhoa.SelectedIndex = 0;

                LoadNghiepVu();
                LoadNhanVien();
            }
        }
    }
    protected void btnKhoa2_Click(object sender, EventArgs e)
    {
        if (f_SuDung.Equals(1))
        {
            string idnv = "", idnhanvien = "", sql = "";
            var nv = ex.GetData_Text("select NghiepVu from xdakhoanghiepvu where iddm='" + dlKhoa.SelectedValue + "' and active=1");
            if (nv.Rows.Count > 0)
            {
                var nhanvien = ex.GetData_Text("select TaiKhoan from xdanguoidung where del='1'");
                if (nhanvien.Rows.Count > 0)
                {
                    try
                    {
                        p = new SqlParameter[3];
                        p[0] = new SqlParameter("@DM", int.Parse(dlKhoa.SelectedValue));
                        p[0].SqlDbType = SqlDbType.Int;
                        p[1] = new SqlParameter("@Thang", int.Parse(dlThang.SelectedValue));
                        p[1].SqlDbType = SqlDbType.Int;
                        p[2] = new SqlParameter("@Nam", int.Parse(dlNam.SelectedValue));
                        p[2].SqlDbType = SqlDbType.Int;
                        ex.ExecuteNonQuerry("sp_KhoaMo_Del", p);

                        //
                        sql = "";
                        for (int i = 0; i < nv.Rows.Count; i++)
                        {
                            idnv = nv.Rows[i]["NghiepVu"].ToString();


                            for (int j = 0; j < nhanvien.Rows.Count; j++)
                            {
                                idnhanvien = nhanvien.Rows[j]["TaiKhoan"].ToString();

                                sql += "insert into xdakhoamo(IDDM,TagNghiepVu,NhanVien,Thang,Nam,Khoa,TuNgay,DenNgay) ";
                                sql += " values ('" + dlKhoa.SelectedValue + "','" + idnv + "','" + idnhanvien + "','" + dlThang.SelectedValue + "','" + dlNam.SelectedValue + "','1',NULL,NULL) ";
                            }

                        }
                        ex.ExecuteNonQuerry_Text(sql);
                        gstGetMess("Lưu thành công", "");
                    }
                    catch (Exception ax)
                    {
                        gstGetMess(ax.Message, "");
                    }
                }
                else
                    gstGetMess("Không có nhân viên nào để khóa", "");
            }
            else gstGetMess("Không có nghiệp vụ nào để khóa", "");
        }
        else gstGetMess("Bạn không có quyền làm việc trên trang này", "");
    }

    protected void dlMoKhoa_SelectedIndexChanged(object sender, EventArgs e)
    {
        LoadNhanVien();
        dlNghiepVu.Items.Clear();
        var nv = ex.GetData_Text("select NghiepVu,TenNghiepVu from xdakhoanghiepvu where IDDM='" + dlMoKhoa.SelectedValue + "' and active=1");
        if (nv.Rows.Count > 0)
        {
            dlNghiepVu.DataSource = nv;
            dlNghiepVu.DataBind();
        }
        dlNghiepVu.Items.Insert(0, new ListItem("Chọn nghiệp vụ mở khóa", ""));
        dlNghiepVu.SelectedIndex = 0;

    }
    void LoadNghiepVu()
    {
        dlNghiepVu.Items.Clear();
        dlNghiepVu.Items.Insert(0, new ListItem("Chọn nghiệp vụ mở khóa", ""));
        dlNghiepVu.SelectedIndex = 0;
    }
    void LoadNhanVien()
    {
        dlNhanVien.Items.Clear();
        dlNhanVien.Items.Insert(0, new ListItem("Chọn nhân viên", ""));
        dlNhanVien.SelectedIndex = 0;
    }
    protected void dlNghiepVu_SelectedIndexChanged(object sender, EventArgs e)
    {
        dlNhanVien.Items.Clear();
        var nv = ex.GetData_Text("select distinct NhanVien from xdaKhoaMo where IDDM='" + dlMoKhoa.SelectedValue + "' and TagNghiepVu='" + dlNghiepVu.SelectedValue + "'");
        if (nv.Rows.Count > 0)
        {
            dlNhanVien.DataSource = nv;
            dlNhanVien.DataBind();
        }
        dlNhanVien.Items.Insert(0, new ListItem("Chọn nhân viên", ""));
        dlNhanVien.SelectedIndex = 0;
    }
    protected void btnMokhoa_Click(object sender, EventArgs e)
    {
        if (f_SuDung.Equals(1))
        {
            if (dlMoKhoa.SelectedIndex > 0 && dlNghiepVu.SelectedIndex > 0 && dlNhanVien.SelectedIndex > 0)
            {
                SqlParameter[] p = new SqlParameter[7];
                p[0] = new SqlParameter("@IDDM", int.Parse(dlMoKhoa.SelectedValue));
                p[0].SqlDbType = SqlDbType.Int;
                p[1] = new SqlParameter("@Tag", dlNghiepVu.SelectedValue);
                p[1].SqlDbType = SqlDbType.NVarChar;
                p[2] = new SqlParameter("@NhanVien", dlNhanVien.SelectedValue);
                p[2].SqlDbType = SqlDbType.NVarChar;
                p[3] = new SqlParameter("@Thang", int.Parse(dlThang2.SelectedValue));
                p[3].SqlDbType = SqlDbType.Int;
                p[4] = new SqlParameter("@Nam", int.Parse(dlNam2.SelectedValue));
                p[4].SqlDbType = SqlDbType.Int;

                p[5] = new SqlParameter("@TuNgay", ex.GetNgayThang(txtTuNgay.Text));
                p[5].SqlDbType = SqlDbType.SmallDateTime;
                p[6] = new SqlParameter("@DenNgay", ex.GetNgayThang(txtDenNgay.Text));
                p[6].SqlDbType = SqlDbType.SmallDateTime;

                ex.ExecuteNonQuerry("sp_KhoaMo_Update", p);
                gstGetMess("Đã mở khóa cho " + dlNhanVien.SelectedItem.Text, "");
            }
            else gstGetMess("Chọn danh mục, nghiệp vụ, và nhân viên muốn mở khóa", "");
        }
        else gstGetMess("Bạn không có quyền làm việc trên trang này", "");
    }

    protected void dlThang2_SelectedIndexChanged(object sender, EventArgs e)
    {
        txtTuNgay.Text = "1/" + dlThang2.SelectedValue + "/" + dlNam2.SelectedValue;
        txtDenNgay.Text = GetLastDayOfMonth(int.Parse(dlThang2.SelectedValue), int.Parse(dlNam2.SelectedValue));
    }
    public string GetLastDayOfMonth(int iMonth, int Nam)
    {
        DateTime dtResult = new DateTime(Nam, iMonth, 1);
        dtResult = dtResult.AddMonths(1);
        dtResult = dtResult.AddDays(-(dtResult.Day));
        return dtResult.ToString("dd/MM/yyyy");
    }
    private void gstGetMess(string gstMess, string gstLink)
    {
        if (gstLink == "")
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), " ", "alert('" + gstMess + "')", true);
        else
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), " ", "alert('" + gstMess + "');window.location.href='" + gstLink + "'", true);

    }
}